﻿using System;
using System.ServiceModel;
using System.Collections.Generic;
using com.clinica.business.entities;
using com.clinica.business.BE.actcliente;
using com.clinica.business.BE.comun;
/****************************************************************************************
 * Sistema    : Sistema de Gestión de Clinica
 * Modulo     : Facturación y Presupuestos
 * Descripción: 
 * Autor      : JPEREZ
 * Fecha      : 2011-07-04
 ****************************************************************************************/
namespace com.clinica.business.BL.interfaces.actcliente
{
    [ServiceContract(Namespace = "http://com.clinica.business.BL.interfaces.actcliente", Name = "IClienteBL", SessionMode = SessionMode.Allowed)]
    public interface IClienteBL
    {
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerCliente")]
        List<ClienteBE> ObtenerCliente(ClienteBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarCliente")]
        int ActualizarCliente(int Accion,ClienteBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerClientes")]
        List<ClienteBE> ObtenerClientes(ClienteBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTipoDocumento")]
        List<ParametrosBE> ObternerTipoDocumento(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTipoCliente")]
        List<ParametrosBE> ObternerTipoCliente(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTipoDocIdent")]
        List<ParametrosBE> ObternerTipoDocIdent(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerDistrito")]
        List<ParametrosBE> ObternerDistrito(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "EliminarCliente")]
        void EliminarCliente(ClienteBE request);

        //[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerConsumos")]
        //List<DocumentoPagoBE> ObternerConsumos(DocumentoPagoBE request);

        //[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerLiquidacion")]
        //List<DocumentoPagoBE> ObternerLiquidacion(DocumentoPagoBE request);
    }
}
